package mx.ipn.presentacion.empleado;

import com.trolltech.qt.core.QDate;
import com.trolltech.qt.gui.QWidget;
import com.trolltech.qt.gui.QTableWidget;
import com.trolltech.qt.gui.QTableWidgetItem;
import com.trolltech.qt.gui.QComboBox;

import mx.ipn.presentacion.ConexionConNegocios;
import mx.ipn.presentacion.Utilerias;
import mx.ipn.to.EmpleadoTO;
import mx.ipn.to.FechaHoraTO;
import mx.ipn.to.PuestoTO;
import mx.ipn.to.TransferObject;
import mx.ipn.to.EstadoTO;
import mx.ipn.to.MunicipioTO;
import mx.ipn.to.ColoniaTO;
import mx.ipn.to.ColoniaCalleTO;
import mx.ipn.to.CalleTO;
import mx.ipn.presentacion.empleado.ui.*;
import mx.ipn.to.PersonaTO;
import mx.ipn.to.DireccionTO;

public class ComportamientoEmpleado extends QWidget {
	Ui_Empleado2 empleado = null;
	String titulo;
	boolean operacion = false;
	boolean modificar = false;
	EmpleadoTO[] arrEmpleadoTO;
	EmpleadoTO empleado2TO;
	EmpleadoTO jefe2TO;

	EstadoTO[] arrEstadoTO = null;
	MunicipioTO[] arrMunicipioTO = null;
	ColoniaTO[] arrColoniaTO = null;
	ColoniaCalleTO coloniaCalleTO = null;
	CalleTO[] arrCalleTO = null;
	EmpleadoTO[] arrJefeTO = null;
	PuestoTO[] arrPuestoTO = null;
	EmpleadoTO[] arrEmpleadoJefeTO = null;

	public void llenarComboEstados() {
		if (arrEstadoTO != null) {
			for (int x = 0; x < arrEstadoTO.length; x++) {
				empleado.comboBoxEstadoEmpleado2.addItem(arrEstadoTO[x]
						.getNombre());
			}
		}
	}

	public void llenarComboMunicipio() {
		if (arrMunicipioTO != null) {
			empleado.comboBoxDelegacionEmpleado2.currentIndexChanged
					.disconnect();
			empleado.comboBoxDelegacionEmpleado2.clear();
			for (int x = 0; x < arrMunicipioTO.length; x++) {
				empleado.comboBoxDelegacionEmpleado2.addItem(arrMunicipioTO[x]
						.getNombre());

			}
			empleado.comboBoxDelegacionEmpleado2.setCurrentIndex(-1);
			empleado.comboBoxDelegacionEmpleado2.currentIndexChanged.connect(
					this, "modificacionMunicipio(int)");
		}
	}

	public void llenarComboColonia() {
		if (arrColoniaTO != null) {
			empleado.comboBoxColoniaEmpleado2.currentIndexChanged.disconnect();
			empleado.comboBoxColoniaEmpleado2.clear();
			for (int x = 0; x < arrColoniaTO.length; x++) {
				empleado.comboBoxColoniaEmpleado2.addItem(arrColoniaTO[x]
						.getNombre());

			}
			empleado.comboBoxColoniaEmpleado2.setCurrentIndex(-1);
			empleado.comboBoxColoniaEmpleado2.currentIndexChanged.connect(this,
					"modificacionColonia(int)");
		}
	}

	public void llenarComboCalle() {
		if (arrCalleTO != null) {
			empleado.comboBoxCalleEmpleado2.currentIndexChanged.disconnect();
			empleado.comboBoxCalleEmpleado2.clear();
			for (int x = 0; x < arrCalleTO.length; x++) {
				empleado.comboBoxCalleEmpleado2.addItem(arrCalleTO[x]
						.getNombre());

			}
			empleado.comboBoxCalleEmpleado2.setCurrentIndex(-1);
			empleado.comboBoxCalleEmpleado2.currentIndexChanged.connect(this,
					"modificacionCalle(int)");
		}
	}

	public void llenarComboJefe() {
		arrJefeTO = null;
		arrJefeTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
				"jefeDistintoActivo", EmpleadoTO[].class);
		if (arrJefeTO != null) {
			if (arrJefeTO[0].getTipoError() <= 0) {
				for (int x = 0; x < arrJefeTO.length; x++) {
					empleado.comboBoxValorEmpleado2.addItem(arrJefeTO[x]
							.getPersonaTO().getApellidoPaterno()
							+ " "
							+ arrJefeTO[x].getPersonaTO().getNombre()
							+ ";  " + arrJefeTO[x].getPuestoTO().getNombre());
				}
			}
		}
	}

	public void llenarComboPuesto(QComboBox combo) {
		arrPuestoTO = null;
		arrPuestoTO = (PuestoTO[]) ConexionConNegocios.invocaServicio(
				"obtenerPuestosActivos", PuestoTO[].class);
		if (arrPuestoTO != null) {
			combo.clear();
			if (arrPuestoTO[0].getTipoError() <= 0) {
				for (int x = 0; x < arrPuestoTO.length; x++) {
					combo.addItem(arrPuestoTO[x].getNombre() + ";  "
							+ arrPuestoTO[x].getTipoEmpleadoTO().getNombre());
				}
			}
			combo.setCurrentIndex(-1);
		}
	}

	public void llenarComboEmpleadoJefe() {
		if (arrEmpleadoJefeTO != null) {
			empleado.comboBoxJefeEmpleado2.clear();
			empleado.comboBoxJefeEmpleado2.addItem("Ninguno");
			for (int x = 0; x < arrEmpleadoJefeTO.length; x++) {
				empleado.comboBoxJefeEmpleado2.addItem(arrEmpleadoJefeTO[x]
						.getPersonaTO().getApellidoPaterno()
						+ " "
						+ arrEmpleadoJefeTO[x].getPersonaTO().getNombre()
						+ ";  "
						+ arrEmpleadoJefeTO[x].getPuestoTO().getNombre());
			}
			empleado.comboBoxJefeEmpleado2.setCurrentIndex(-1);
			empleado.comboBoxJefeEmpleado2.setEditable(false);
		}
	}

	public void agregarEmpleado(Ui_EmpleadoPrincipal ui) {
		arrEmpleadoTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
				"buscarEmpleadosActivos", EmpleadoTO[].class);
		arrEmpleadoJefeTO = arrEmpleadoTO.clone();
		preparaVentana(ui);
		empleado.pushButtonValor3Empleado2.setText("A&gregar");
		empleado.pushButtonValor3Empleado2.clicked.connect(this,
				"botonAgregar()");
	}

	public void consultarEmpleado(Ui_EmpleadoPrincipal ui) {
		arrEmpleadoTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
				"buscarEmpleadosActivos", EmpleadoTO[].class);
		arrEmpleadoJefeTO = arrEmpleadoTO.clone();
		preparaVentanaBC(ui);
		operacion = true;
		empleado.pushButtonValor3Empleado2.setVisible(false);
		empleado.groupBoxDatosEmpleadoEmpleado2.setEnabled(false);
		empleado.groupBoxDireccionEmpleado2.setEnabled(false);
		empleado.groupBoxPropiedadesEmpleado2.setEnabled(false);
	}

	public void bajaEmpleado(Ui_EmpleadoPrincipal ui) {
		arrEmpleadoTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
				"buscarEmpleadosActivos", EmpleadoTO[].class);
		arrEmpleadoJefeTO = arrEmpleadoTO.clone();
		preparaVentanaBC(ui);
		operacion = true;
		empleado.pushButtonValor3Empleado2.setText("&Dar de Baja");
		empleado.pushButtonValor3Empleado2.clicked.connect(this, "botonBaja()");
		empleado.groupBoxDatosEmpleadoEmpleado2.setEnabled(false);
		empleado.groupBoxDireccionEmpleado2.setEnabled(false);
		empleado.groupBoxPropiedadesEmpleado2.setEnabled(false);
	}

	public void modificarEmpleado(Ui_EmpleadoPrincipal ui) {
		arrEmpleadoTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
				"buscarEmpleadosActivos", EmpleadoTO[].class);
		arrEmpleadoJefeTO = arrEmpleadoTO.clone();
		preparaVentana(ui);
		empleado.pushButtonValor3Empleado2.setText("&Modificar");
		modificar = true;
		empleado.groupBoxDatosEmpleadoEmpleado2.setEnabled(false);
		empleado.groupBoxDireccionEmpleado2.setEnabled(false);
		empleado.groupBoxPropiedadesEmpleado2.setEnabled(false);

		empleado.pushButtonValor3Empleado2.clicked.connect(this,
				"botonModificar()");
	}

	public void preparaVentana(Ui_EmpleadoPrincipal ui) {
		if (empleado == null) {
			empleado = new Ui_Empleado2();
			empleado.setupUi(ui.centralwidget);
			empleado.dockWidgetEmpleado2.setHidden(false);
			ui.gridLayout.addWidget(empleado.dockWidgetEmpleado2);
			empleado.dockWidgetEmpleado2.setWindowTitle(titulo);

			arrEstadoTO = (EstadoTO[]) ConexionConNegocios.invocaServicio(
					"obtenerEstados", EstadoTO[].class);

			llenarComboEstados();
			limpiarEmpleado();
			empleado.pushButtonCancelarEmpleado2.clicked.connect(this,
					"botonCancelar()");

			empleado.pushButtonLimpiarEmpleado2.clicked.connect(this,
					"botonLimpiar()");

			eventosGenerales();

			empleado.labelValorEmpleado2.setVisible(false);
			empleado.comboBoxValorEmpleado2.setVisible(false);

			empleado.comboBoxValor1Empleado2.setVisible(false);
			empleado.labelValor1Empleado2.setVisible(false);

			empleado.labelvalor4Empleado2.setVisible(false);
			empleado.lineEditvalor4Empleado2.setVisible(false);

			bloqueaComponentes();

		} else
			empleado.dockWidgetEmpleado2.setHidden(false);

		empleado.tableWidgetResultadoEmpleado2.disconnect();
		llenarTabla(empleado.tableWidgetResultadoEmpleado2);
		empleado.tableWidgetResultadoEmpleado2.cellChanged.connect(this,
				"slotNoEditarTabla(int,int)");
		empleado.tableWidgetResultadoEmpleado2.clicked.connect(this,
				"seleccionCelda()");
		empleado.comboBoxBuscarEmpleado2.setCurrentIndex(-1);
		empleado.comboBoxBuscarEmpleado2.currentIndexChanged.connect(this,
				"seleccionBusqueda(int)");
		llenarComboPuesto(empleado.comboBoxPuestoEmpleado2);
		llenarComboEmpleadoJefe();

	}

	public void preparaVentanaBC(Ui_EmpleadoPrincipal ui) {
		if (empleado == null) {
			empleado = new Ui_Empleado2();
			empleado.setupUi(ui.centralwidget);
			empleado.dockWidgetEmpleado2.setHidden(false);
			ui.gridLayout.addWidget(empleado.dockWidgetEmpleado2);
			empleado.dockWidgetEmpleado2.setWindowTitle(titulo);

			arrEstadoTO = (EstadoTO[]) ConexionConNegocios.invocaServicio(
					"obtenerEstados", EstadoTO[].class);

			llenarComboEstados();
			limpiarEmpleado();
			empleado.pushButtonCancelarEmpleado2.clicked.connect(this,
					"botonCancelar()");

			empleado.pushButtonLimpiarEmpleado2.clicked.connect(this,
					"botonLimpiar()");

			empleado.labelValorEmpleado2.setVisible(false);
			empleado.comboBoxValorEmpleado2.setVisible(false);

			empleado.comboBoxValor1Empleado2.setVisible(false);
			empleado.labelValor1Empleado2.setVisible(false);

			empleado.labelvalor4Empleado2.setVisible(false);
			empleado.lineEditvalor4Empleado2.setVisible(false);

			bloqueaComponentes();

		} else
			empleado.dockWidgetEmpleado2.setHidden(false);

		empleado.tableWidgetResultadoEmpleado2.disconnect();
		llenarTabla(empleado.tableWidgetResultadoEmpleado2);
		empleado.tableWidgetResultadoEmpleado2.cellChanged.connect(this,
				"slotNoEditarTabla(int,int)");
		empleado.tableWidgetResultadoEmpleado2.clicked.connect(this,
				"seleccionCelda()");
		empleado.comboBoxBuscarEmpleado2.setCurrentIndex(-1);
		empleado.comboBoxBuscarEmpleado2.currentIndexChanged.connect(this,
				"seleccionBusqueda(int)");
		llenarComboPuesto(empleado.comboBoxPuestoEmpleado2);
		llenarComboEmpleadoJefe();

	}

	public void eventosGenerales() {

		empleado.pushButtonCurp.clicked.connect(this, "calculaCurp()");

		empleado.lineEditApellidoPaternoEmpleado2.textChanged.connect(this,
				"modificacionPaterno(String)");
		empleado.lineEditApellidoMaternoEmpleado2.textChanged.connect(this,
				"modificacionMaterno(String)");
		empleado.lineEditNombresEmpleado2.textChanged.connect(this,
				"modificacionNombre(String)");
		empleado.dateEditNacimientoEmpleado2.dateChanged.connect(this,
				"modificacionNacimiento(QDate)");
		empleado.comboBoxSexoEmpleado2.currentIndexChanged.connect(this,
				"modificacionSexo(int)");
		empleado.comboBoxSexoEmpleado2.currentStringChanged.connect(this,
				"modificacionSexo(String)");
		empleado.lineEditCurpEmpleado2.textChanged.connect(this,
				"modificacionCurp(String)");
		empleado.lineEditNssEmpleado2.textChanged.connect(this,
				"modificacionNss(String)");
		empleado.comboBoxEstadoEmpleado2.currentIndexChanged.connect(this,
				"modificacionEstado(int)");
		empleado.comboBoxDelegacionEmpleado2.currentIndexChanged.connect(this,
				"modificacionMunicipio(int)");
		empleado.comboBoxColoniaEmpleado2.currentIndexChanged.connect(this,
				"modificacionColonia(int)");
		empleado.comboBoxCalleEmpleado2.currentIndexChanged.connect(this,
				"modificacionCalle(int)");
		empleado.comboBoxPuestoEmpleado2.currentIndexChanged.connect(this,
				"modificacionPuesto(int)");
		empleado.comboBoxJefeEmpleado2.currentIndexChanged.connect(this,
				"modificacionJefe(int)");
		empleado.comboBoxJefeEmpleado2.editTextChanged.connect(this,
				"modificacionJefe(String)");
		empleado.lineEditNumeroExteriorEmpleado2.textChanged.connect(this,
				"modificacionExterior(String)");

		empleado.comboBoxEstadoEmpleado2.currentStringChanged.connect(this,
				"modificacionEstado(String)");
		empleado.comboBoxDelegacionEmpleado2.currentStringChanged.connect(this,
				"modificacionMunicipio(String)");
		empleado.comboBoxColoniaEmpleado2.currentStringChanged.connect(this,
				"modificacionColonia(String)");
		empleado.comboBoxCalleEmpleado2.currentStringChanged.connect(this,
				"modificacionCalle(String)");
		empleado.comboBoxPuestoEmpleado2.currentStringChanged.connect(this,
				"modificacionPuesto(String)");
		empleado.comboBoxJefeEmpleado2.currentStringChanged.connect(this,
				"modificacionJefe(String)");

	}

	public void limpiarEmpleado() {

		empleado.comboBoxCalleEmpleado2.disconnect();
		empleado.comboBoxColoniaEmpleado2.disconnect();
		empleado.comboBoxDelegacionEmpleado2.disconnect();
		empleado.comboBoxEstadoEmpleado2.disconnect();
		empleado.comboBoxJefeEmpleado2.disconnect();
		empleado.comboBoxPuestoEmpleado2.disconnect();
		empleado.comboBoxSexoEmpleado2.disconnect();
		empleado.lineEditApellidoMaternoEmpleado2.disconnect();
		empleado.lineEditApellidoPaternoEmpleado2.disconnect();
		empleado.lineEditCurpEmpleado2.disconnect();
		empleado.lineEditNombresEmpleado2.disconnect();
		empleado.lineEditNssEmpleado2.disconnect();
		empleado.lineEditNumeroExteriorEmpleado2.disconnect();
		empleado.pushButtonCurp.disconnect();

		empleado.comboBoxBuscarEmpleado2.setCurrentIndex(-1);

		empleado.comboBoxCalleEmpleado2.clear();

		empleado.comboBoxColoniaEmpleado2.clear();

		empleado.comboBoxCPEmpleado2.clear();

		empleado.comboBoxDelegacionEmpleado2.clear();

		empleado.comboBoxEstadoEmpleado2.setCurrentIndex(-1);

		empleado.comboBoxJefeEmpleado2.clear();

		empleado.comboBoxPuestoEmpleado2.setCurrentIndex(-1);

		empleado.comboBoxSexoEmpleado2.setCurrentIndex(-1);

		empleado.lineEditApellidoMaternoEmpleado2.clear();

		empleado.lineEditApellidoPaternoEmpleado2.clear();

		empleado.lineEditCurpEmpleado2.clear();

		empleado.lineEditMovilrEmpleado2.clear();

		empleado.lineEditNombresEmpleado2.clear();

		empleado.lineEditNssEmpleado2.clear();

		empleado.lineEditNumeroExteriorEmpleado2.clear();

		empleado.lineEditNumeroExteriorEmpleado2.clear();

		empleado.lineEditNumeroInteriorEmpleado2.clear();

		empleado.lineEditTelefonoEmpleado2.clear();

		empleado.pushButtonCurp.setEnabled(false);
	}

	public void bloqueaComponentes() {

		empleado.comboBoxCalleEmpleado2.setEnabled(false);
		empleado.comboBoxColoniaEmpleado2.setEnabled(false);
		empleado.comboBoxCPEmpleado2.setEnabled(false);
		empleado.comboBoxDelegacionEmpleado2.setEnabled(false);
		empleado.comboBoxEstadoEmpleado2.setEnabled(false);
		empleado.comboBoxJefeEmpleado2.setEnabled(false);
		empleado.comboBoxPuestoEmpleado2.setEnabled(false);
		empleado.comboBoxSexoEmpleado2.setEnabled(false);

		empleado.lineEditApellidoMaternoEmpleado2.setEnabled(false);
		empleado.lineEditNombresEmpleado2.setEnabled(false);
		empleado.lineEditCurpEmpleado2.setEnabled(false);
		empleado.lineEditMovilrEmpleado2.setEnabled(false);
		empleado.lineEditNssEmpleado2.setEnabled(false);
		empleado.lineEditNumeroExteriorEmpleado2.setEnabled(false);
		empleado.lineEditNumeroInteriorEmpleado2.setEnabled(false);
		empleado.lineEditTelefonoEmpleado2.setEnabled(false);

		empleado.dateEditIngresoEmpleado2.setEnabled(false);
		empleado.dateEditNacimientoEmpleado2.setEnabled(false);

		empleado.pushButtonBuscarEmpleado2.setEnabled(false);
		empleado.pushButtonLimpiarEmpleado2.setEnabled(false);
		empleado.pushButtonValor3Empleado2.setEnabled(false);

	}

	public void llenarTablaBasico(QTableWidget tabla, EmpleadoTO elementoTO,
			int x) {

		QTableWidgetItem __item = new QTableWidgetItem();
		__item.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado", elementoTO.getNss()));
		tabla.setItem(x, 0, __item);

		__item = new QTableWidgetItem();
		__item.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado", elementoTO.getPersonaTO().getNombre()));
		tabla.setItem(x, 1, __item);

		__item = new QTableWidgetItem();
		__item.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado", elementoTO.getPersonaTO().getApellidoPaterno()));
		tabla.setItem(x, 2, __item);

		__item = new QTableWidgetItem();
		__item.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado", elementoTO.getPersonaTO().getApellidoMaterno()));
		tabla.setItem(x, 3, __item);

		if (elementoTO.getPersonaTO().isSexo() == false) {
			__item = new QTableWidgetItem();
			__item.setText(com.trolltech.qt.core.QCoreApplication.translate(
					"Empleado", "Masculino"));
			tabla.setItem(x, 4, __item);
		} else {
			__item = new QTableWidgetItem();
			__item.setText(com.trolltech.qt.core.QCoreApplication.translate(
					"Empleado", "Femenino"));
			tabla.setItem(x, 4, __item);
		}

		__item = new QTableWidgetItem();
		__item.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado", elementoTO.getPuestoTO().getNombre()));
		tabla.setItem(x, 5, __item);

		__item = new QTableWidgetItem();
		__item.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado", elementoTO.getPersonaTO().getCurp()));
		tabla.setItem(x, 6, __item);

		tabla.resizeColumnToContents(0);
		tabla.resizeColumnToContents(2);
		tabla.setColumnWidth(4, 65);
		tabla.setColumnWidth(1, 100);
		tabla.setColumnWidth(5, 100);
		tabla.setColumnWidth(6, 120);
	}

	public void llenarTabla(QTableWidget tabla) {
		tabla.clear();
		agregarTabla(tabla);
		if (arrEmpleadoTO != null) {
			tabla.setRowCount(arrEmpleadoTO.length);
			tabla
					.setSelectionMode(com.trolltech.qt.gui.QAbstractItemView.SelectionMode.SingleSelection);
			for (int x = 0; x < arrEmpleadoTO.length; x++) {
				llenarTablaBasico(tabla, arrEmpleadoTO[x], x);
			}
		}
	}

	public void agregarTabla(QTableWidget tableWidgetResultadoEmpleado2) {

		tableWidgetResultadoEmpleado2.clear();
		tableWidgetResultadoEmpleado2.setColumnCount(7);

		QTableWidgetItem __colItem = new QTableWidgetItem();
		__colItem.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado2", "IMSS"));
		tableWidgetResultadoEmpleado2.setHorizontalHeaderItem(0, __colItem);

		QTableWidgetItem __colItem1 = new QTableWidgetItem();
		__colItem1.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado2", "Nombre"));
		tableWidgetResultadoEmpleado2.setHorizontalHeaderItem(1, __colItem1);

		QTableWidgetItem __colItem2 = new QTableWidgetItem();
		__colItem2.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado2", "Apellido Paterno"));
		tableWidgetResultadoEmpleado2.setHorizontalHeaderItem(2, __colItem2);

		QTableWidgetItem __colItem3 = new QTableWidgetItem();
		__colItem3.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado2", "Apellido Materno"));
		tableWidgetResultadoEmpleado2.setHorizontalHeaderItem(3, __colItem3);

		QTableWidgetItem __colItem4 = new QTableWidgetItem();
		__colItem4.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado2", "Sexo"));
		tableWidgetResultadoEmpleado2.setHorizontalHeaderItem(4, __colItem4);

		QTableWidgetItem __colItem5 = new QTableWidgetItem();
		__colItem5.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado2", "Puesto"));
		tableWidgetResultadoEmpleado2.setHorizontalHeaderItem(5, __colItem5);

		QTableWidgetItem __colItem6 = new QTableWidgetItem();
		__colItem6.setText(com.trolltech.qt.core.QCoreApplication.translate(
				"Empleado2", "CURP"));
		tableWidgetResultadoEmpleado2.setHorizontalHeaderItem(6, __colItem6);

		tableWidgetResultadoEmpleado2.setRowCount(0);

		tableWidgetResultadoEmpleado2.resizeColumnsToContents();

	}

	public void seleccionCelda() {
		seleccionCelda(empleado.tableWidgetResultadoEmpleado2);
	}

	public void seleccionCelda(QTableWidget tabla) {
		if (arrEmpleadoTO != null) {

			if (modificar == true) {
				empleado.groupBoxDatosEmpleadoEmpleado2.setEnabled(true);
				empleado.groupBoxDireccionEmpleado2.setEnabled(true);
				empleado.groupBoxPropiedadesEmpleado2.setEnabled(true);
			}

			empleado2TO = null;

			empleado2TO = arrEmpleadoTO[tabla.currentRow()];

			empleado.lineEditApellidoPaternoEmpleado2
					.setText(arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
							.getApellidoPaterno());
			empleado.lineEditApellidoMaternoEmpleado2
					.setText(arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
							.getApellidoMaterno());
			empleado.lineEditNombresEmpleado2.setText(arrEmpleadoTO[tabla
					.currentRow()].getPersonaTO().getNombre());
			empleado.lineEditTelefonoEmpleado2.setText(arrEmpleadoTO[tabla
					.currentRow()].getPersonaTO().getTelefono());
			empleado.lineEditMovilrEmpleado2.setText(arrEmpleadoTO[tabla
					.currentRow()].getPersonaTO().getMovil());

			QDate fecha = new QDate();

			String fecha2 = FechaHoraTO.getFecha(
					arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
							.getFechaNacimiento()).toString();
			int anio = Integer.parseInt(fecha2.substring(0, 4));
			int mes = Integer.parseInt(fecha2.substring(5, 7));
			int dia = Integer.parseInt(fecha2.substring(8, fecha2.length()));
			fecha.setDate(anio, mes, dia);
			empleado.dateEditNacimientoEmpleado2.setDate(fecha);

			if (arrEmpleadoTO[tabla.currentRow()].getPersonaTO().isSexo() == false) {
				empleado.comboBoxSexoEmpleado2.setCurrentIndex(0);
				empleado.comboBoxSexoEmpleado2.currentStringChanged
						.emit("Masculino");
			} else {
				empleado.comboBoxSexoEmpleado2.setCurrentIndex(1);
				empleado.comboBoxSexoEmpleado2.currentStringChanged
						.emit("Femenino");
			}
			empleado.lineEditCurpEmpleado2.setText(arrEmpleadoTO[tabla
					.currentRow()].getPersonaTO().getCurp());
			fecha2 = FechaHoraTO.getFecha(
					arrEmpleadoTO[tabla.currentRow()].getFechaIngreso())
					.toString();
			anio = Integer.parseInt(fecha2.substring(0, 4));
			mes = Integer.parseInt(fecha2.substring(5, 7));
			dia = Integer.parseInt(fecha2.substring(8, fecha2.length()));
			fecha.setDate(anio, mes, dia);
			empleado.dateEditIngresoEmpleado2.setDate(fecha);
			empleado.lineEditNssEmpleado2.setText(arrEmpleadoTO[tabla
					.currentRow()].getNss());

			empleado.comboBoxEstadoEmpleado2.lineEdit().setText(
					arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
							.getDireccionTO().getColoniaCalleTO()
							.getListColoniaTO()[0].getMunicipioTO()
							.getEstadoTO().getNombre());
			empleado.comboBoxEstadoEmpleado2.lineEdit().returnPressed.emit();

			empleado.comboBoxDelegacionEmpleado2.lineEdit()
					.setText(
							arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
									.getDireccionTO().getColoniaCalleTO()
									.getListColoniaTO()[0].getMunicipioTO()
									.getNombre());
			empleado.comboBoxDelegacionEmpleado2.lineEdit().returnPressed
					.emit();

			empleado.comboBoxColoniaEmpleado2.lineEdit().setText(
					arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
							.getDireccionTO().getColoniaCalleTO()
							.getListColoniaTO()[0].getNombre());
			empleado.comboBoxColoniaEmpleado2.lineEdit().returnPressed.emit();

			empleado.comboBoxCalleEmpleado2.lineEdit().setText(
					arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
							.getDireccionTO().getColoniaCalleTO()
							.getListCalleTO()[0].getNombre());
			empleado.comboBoxCalleEmpleado2.lineEdit().returnPressed.emit();

			empleado.comboBoxCPEmpleado2.lineEdit().setText(
					arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
							.getDireccionTO().getColoniaCalleTO()
							.getListColoniaTO()[0].getCodigoPostal());
			empleado.lineEditNumeroExteriorEmpleado2
					.setText(arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
							.getDireccionTO().getNumero());
			empleado.lineEditNumeroInteriorEmpleado2
					.setText(arrEmpleadoTO[tabla.currentRow()].getPersonaTO()
							.getDireccionTO().getInterior());

			empleado.comboBoxPuestoEmpleado2.lineEdit().setText(
					arrEmpleadoTO[tabla.currentRow()].getPuestoTO().getNombre()
							+ ";  "
							+ arrEmpleadoTO[tabla.currentRow()].getPuestoTO()
									.getTipoEmpleadoTO().getNombre());
			empleado.comboBoxPuestoEmpleado2.lineEdit().returnPressed.emit();

			EmpleadoTO jefeTO = null;
			jefeTO = (EmpleadoTO) ConexionConNegocios.invocaServicio(
					"encontrarJefeActivoPorSubordinado", arrEmpleadoTO[tabla
							.currentRow()].getIdEmpleado(), EmpleadoTO.class);
			if (jefeTO != null) {
				if (jefeTO.getTipoError() > 0) {
					empleado.comboBoxJefeEmpleado2.setCurrentIndex(0);
					if (operacion == true)
						empleado.pushButtonValor3Empleado2.setEnabled(true);
				} else {
					jefe2TO = jefeTO;
					empleado.comboBoxJefeEmpleado2.setEditable(true);
					empleado.comboBoxJefeEmpleado2.lineEdit().setText(
							jefeTO.getPersonaTO().getApellidoPaterno() + " "
									+ jefeTO.getPersonaTO().getNombre() + ";  "
									+ jefeTO.getPuestoTO().getNombre());
					empleado.comboBoxJefeEmpleado2.lineEdit().returnPressed
							.emit();
					empleado.comboBoxJefeEmpleado2.setEditable(false);
					if (operacion == true)
						empleado.pushButtonValor3Empleado2.setEnabled(true);
				}
			}

		}
	}

	public void slotNoEditarTabla(int x, int y) {
		llenarTablaBasico(empleado.tableWidgetResultadoEmpleado2,
				arrEmpleadoTO[x], x);
	}

	public void seleccionBusqueda(int seleccion) {
		empleado.comboBoxBuscarEmpleado2.disconnect();
		empleado.comboBoxValorEmpleado2.disconnect();
		empleado.comboBoxValor1Empleado2.disconnect();
		empleado.lineEditvalor4Empleado2.disconnect();
		empleado.pushButtonBuscarEmpleado2.disconnect();

		empleado.labelvalor4Empleado2.setEnabled(false);
		empleado.lineEditvalor4Empleado2.setEnabled(false);
		empleado.labelvalor4Empleado2.setVisible(false);
		empleado.lineEditvalor4Empleado2.setVisible(false);
		empleado.lineEditvalor4Empleado2.disconnect();
		empleado.lineEditvalor4Empleado2.setInputMask("");
		empleado.lineEditvalor4Empleado2.setValidator(null);

		empleado.comboBoxValorEmpleado2.clear();
		empleado.comboBoxValorEmpleado2.setValidator(null);
		empleado.labelValorEmpleado2.setVisible(false);
		empleado.comboBoxValorEmpleado2.setVisible(false);

		empleado.pushButtonBuscarEmpleado2.setEnabled(false);
		empleado.pushButtonLimpiarEmpleado2.setEnabled(false);
		empleado.pushButtonLimpiarEmpleado2.setVisible(true);

		empleado.comboBoxValor1Empleado2.clear();
		empleado.comboBoxValor1Empleado2.setValidator(null);
		empleado.labelValor1Empleado2.setVisible(false);
		empleado.labelValor1Empleado2.setEnabled(false);
		empleado.comboBoxValor1Empleado2.setVisible(false);
		empleado.comboBoxValor1Empleado2.setEnabled(false);

		empleado.comboBoxBuscarEmpleado2.currentIndexChanged.connect(this,
				"seleccionBusqueda(int)");

		switch (seleccion) {
		case 0: {

			empleado.labelvalor4Empleado2.setEnabled(true);
			empleado.labelvalor4Empleado2.setVisible(true);
			empleado.labelvalor4Empleado2.setText("CURP:");

			empleado.lineEditvalor4Empleado2.setEnabled(true);
			empleado.lineEditvalor4Empleado2.setVisible(true);
			empleado.lineEditvalor4Empleado2
					.setInputMask(">AAAA-999999-A-AA-AAA-99;*");
			empleado.lineEditvalor4Empleado2.setText("****-999999-*-**-***-99");

			empleado.lineEditvalor4Empleado2.textChanged.connect(this,
					"cambioCURP(String)");
			empleado.lineEditvalor4Empleado2.returnPressed.connect(this,
					"botonBuscarCURP()");
			empleado.pushButtonBuscarEmpleado2.clicked.connect(this,
					"botonBuscarCURP()");
			empleado.lineEditvalor4Empleado2.setFocus();
			break;
		}
		case 1: {

			empleado.labelvalor4Empleado2.setEnabled(true);
			empleado.labelvalor4Empleado2.setVisible(true);
			empleado.labelvalor4Empleado2.setText("NSS:");

			empleado.lineEditvalor4Empleado2.setEnabled(true);
			empleado.lineEditvalor4Empleado2.setVisible(true);
			empleado.lineEditvalor4Empleado2.setInputMask("99999999999;#");

			empleado.lineEditvalor4Empleado2.textChanged.connect(this,
					"cambioNSS(String)");
			empleado.lineEditvalor4Empleado2.returnPressed.connect(this,
					"botonBuscarNSS()");
			empleado.pushButtonBuscarEmpleado2.clicked.connect(this,
					"botonBuscarNSS()");
			empleado.lineEditvalor4Empleado2.setFocus();
			break;
		}
		case 2: {
			empleado.labelValorEmpleado2.setVisible(true);
			empleado.labelValorEmpleado2.setEnabled(true);
			empleado.labelValorEmpleado2.setText("Apellido Paterno:");
			empleado.comboBoxValorEmpleado2.setVisible(true);
			empleado.comboBoxValorEmpleado2.setEnabled(true);
			empleado.comboBoxValorEmpleado2.setCurrentIndex(-1);
			empleado.comboBoxValorEmpleado2.editTextChanged.connect(this,
					"cambioPaterno(String)");

			empleado.labelValor1Empleado2.setVisible(true);
			empleado.labelValor1Empleado2.setEnabled(false);
			empleado.labelValor1Empleado2.setText("Nombre(s)");
			empleado.comboBoxValor1Empleado2.setVisible(true);
			empleado.comboBoxValor1Empleado2.setEnabled(false);
			empleado.comboBoxValor1Empleado2.setCurrentIndex(-1);
			empleado.comboBoxValor1Empleado2.editTextChanged.connect(this,
					"cambioNombre(String)");

			empleado.pushButtonBuscarEmpleado2.clicked.connect(this,
					"botonBuscarNombrePaterno()");
			empleado.comboBoxValorEmpleado2.setFocus();
			break;
		}
		case 3: {
			empleado.labelValorEmpleado2.setVisible(true);
			empleado.labelValorEmpleado2.setEnabled(true);
			empleado.labelValorEmpleado2.setText("Puesto:");
			empleado.comboBoxValorEmpleado2.setVisible(true);
			empleado.comboBoxValorEmpleado2.setEnabled(true);
			llenarComboPuesto(empleado.comboBoxValorEmpleado2);
			empleado.comboBoxValorEmpleado2.setCurrentIndex(-1);
			empleado.comboBoxValorEmpleado2.editTextChanged.connect(this,
					"cambioPuesto(String)");

			empleado.pushButtonBuscarEmpleado2.clicked.connect(this,
					"botonBuscarPuesto()");
			empleado.comboBoxValorEmpleado2.setFocus();
			break;
		}
		case 4: {
			empleado.labelValorEmpleado2.setVisible(true);
			empleado.labelValorEmpleado2.setEnabled(true);
			empleado.labelValorEmpleado2.setText("Jefe Directo:");
			empleado.comboBoxValorEmpleado2.setVisible(true);
			empleado.comboBoxValorEmpleado2.setEnabled(true);
			llenarComboJefe();
			empleado.comboBoxValorEmpleado2.setCurrentIndex(-1);
			empleado.comboBoxValorEmpleado2.editTextChanged.connect(this,
					"cambioJefe(String)");

			empleado.pushButtonBuscarEmpleado2.clicked.connect(this,
					"botonBuscarJefe()");
			empleado.comboBoxValorEmpleado2.setFocus();
			break;
		}

		case 5: {

			empleado.pushButtonBuscarEmpleado2.setEnabled(true);
			empleado.pushButtonLimpiarEmpleado2.setVisible(false);
			empleado.pushButtonBuscarEmpleado2.clicked.connect(this,
					"botonBuscarTodos()");
			break;
		}

		}
	}

	public short cambioTexto(String cadena, int limite) {
		short res = (short) -1;
		if (cadena.length() < limite) {
			if (cadena != null && cadena.replace(" ", "") != ""
					&& cadena.replace(" ", "").length() > 0) {
				res = 0;

			} else {
				res = 1;
			}
		} else {
			res = 2;
		}
		return res;
	}

	public void cambioCURP(String cadena) {
		short res = cambioTexto(cadena, 23);
		if (res == 0) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(false);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(false);
		} else if (res == 1) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(false);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(false);
		} else if (res == 2) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(true);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(true);
		}
	}

	public void cambioNSS(String cadena) {
		short res = cambioTexto(cadena, 11);
		if (res == 0) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(false);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(false);
		} else if (res == 1) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(false);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(false);
		} else if (res == 2) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(true);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(true);
		}
	}

	public void cambioPaterno(String cadena) {
		short res = cambioTexto(cadena, 80);
		if (res == 0) {
			empleado.labelValor1Empleado2.setEnabled(true);
			empleado.comboBoxValor1Empleado2.setEnabled(true);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(true);
			empleado.pushButtonBuscarEmpleado2.setEnabled(true);
		} else if (res == 1) {
			empleado.labelValor1Empleado2.setEnabled(false);
			empleado.comboBoxValor1Empleado2.setEnabled(false);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(false);
			empleado.pushButtonBuscarEmpleado2.setEnabled(false);
		} else if (res == 2) {
			empleado.comboBoxValorEmpleado2.lineEdit().setText(
					cadena.substring(0, 79));
		}
	}

	public void cambioNombre(String cadena) {
		short res = cambioTexto(cadena, 80);
		if (res == 0) {

		} else if (res == 1) {

		} else if (res == 2) {
			empleado.comboBoxValor1Empleado2.lineEdit().setText(
					cadena.substring(0, 79));
		}
	}

	public void cambioPuesto(String cadena) {
		short res = cambioTexto(cadena, 80);
		if (res == 0) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(true);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(true);
		} else if (res == 1) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(false);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(false);
		} else if (res == 2) {
			empleado.comboBoxValorEmpleado2.lineEdit().setText(
					cadena.substring(0, 79));
		}
	}

	public void cambioJefe(String cadena) {
		short res = cambioTexto(cadena, 162);
		if (res == 0) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(true);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(true);
		} else if (res == 1) {
			empleado.pushButtonBuscarEmpleado2.setEnabled(false);
			empleado.pushButtonLimpiarEmpleado2.setEnabled(false);
		} else if (res == 2) {
			empleado.comboBoxValorEmpleado2.lineEdit().setText(
					cadena.substring(0, 161));
		}
	}

	public void botonBuscarCURP() {

		if (empleado.lineEditvalor4Empleado2.text().length() == 23) {
			String cadena = new String(empleado.lineEditvalor4Empleado2.text()
					.replace("-", ""));
			EmpleadoTO[] arrRespuestaTO = null;
			arrRespuestaTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
					"encontrarEmpleadoActivoPorCURP", cadena,
					EmpleadoTO[].class);
			if (arrRespuestaTO != null) {
				if (arrRespuestaTO[0].getTipoError() > 0) {
					Utilerias.mostrarMensajeError(this, arrRespuestaTO[0]);
				} else {
					if (modificar == true) {
						empleado.groupBoxDatosEmpleadoEmpleado2
								.setEnabled(false);
						empleado.groupBoxDireccionEmpleado2.setEnabled(false);
						empleado.groupBoxPropiedadesEmpleado2.setEnabled(false);
					}

					arrEmpleadoTO = null;
					arrEmpleadoTO = arrRespuestaTO.clone();
					limpiarEmpleado();

					if (operacion == false) {
						eventosGenerales();
						preparaVentana(null);
					} else
						preparaVentanaBC(null);
				}
			}

		}
	}

	public void botonBuscarNSS() {
		if (empleado.lineEditvalor4Empleado2.text().length() == 11) {
			String cadena = new String(empleado.lineEditvalor4Empleado2.text());
			EmpleadoTO[] arrRespuestaTO = null;
			arrRespuestaTO = (EmpleadoTO[]) ConexionConNegocios
					.invocaServicio("encontrarEmpleadoActivoPorNss", cadena,
							EmpleadoTO[].class);
			if (arrRespuestaTO != null) {
				if (arrRespuestaTO[0].getTipoError() > 0) {
					Utilerias.mostrarMensajeError(this, arrRespuestaTO[0]);
				} else {
					if (modificar == true) {
						empleado.groupBoxDatosEmpleadoEmpleado2
								.setEnabled(false);
						empleado.groupBoxDireccionEmpleado2.setEnabled(false);
						empleado.groupBoxPropiedadesEmpleado2.setEnabled(false);
					}
					arrEmpleadoTO = null;
					arrEmpleadoTO = arrRespuestaTO.clone();
					limpiarEmpleado();
					if (operacion == false) {

						eventosGenerales();
						preparaVentana(null);
					} else
						preparaVentanaBC(null);
				}
			}
		}

	}

	public void botonBuscarNombrePaterno() {

		String nombre = new String(empleado.comboBoxValor1Empleado2.lineEdit()
				.text());
		String paterno = new String(empleado.comboBoxValorEmpleado2.lineEdit()
				.text());
		EmpleadoTO[] arrRespuestaTO = null;
		if (cambioTexto(empleado.comboBoxValor1Empleado2.lineEdit().text(), 80) == 0) {
			PersonaTO personaTO = new PersonaTO();
			personaTO.setNombre(nombre);
			personaTO.setApellidoPaterno(paterno);
			arrRespuestaTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
					"encontrarEmpleadosActivosPorNombrePaterno", personaTO,
					EmpleadoTO[].class);
		} else {
			arrRespuestaTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
					"encontrarEmpleadosActivosPorPaterno", paterno,
					EmpleadoTO[].class);
		}
		if (arrRespuestaTO != null) {
			if (arrRespuestaTO[0].getTipoError() > 0) {
				Utilerias.mostrarMensajeError(this, arrRespuestaTO[0]);
			} else {
				if (modificar == true) {
					empleado.groupBoxDatosEmpleadoEmpleado2.setEnabled(false);
					empleado.groupBoxDireccionEmpleado2.setEnabled(false);
					empleado.groupBoxPropiedadesEmpleado2.setEnabled(false);
				}
				arrEmpleadoTO = null;
				arrEmpleadoTO = arrRespuestaTO.clone();
				limpiarEmpleado();
				if (operacion == false) {
					eventosGenerales();
					preparaVentana(null);
				} else
					preparaVentanaBC(null);
			}
		}
	}

	public void botonBuscarPuesto() {
		empleado.comboBoxValorEmpleado2.lineEdit().returnPressed.emit();
		if (empleado.comboBoxValorEmpleado2.currentIndex() > -1) {
			EmpleadoTO[] arrRespuestaTO = null;
			short idPuesto = arrPuestoTO[empleado.comboBoxValorEmpleado2
					.currentIndex()].getIdPuesto();
			arrRespuestaTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
					"encontrarEmpleadosActivosPorPuesto", idPuesto,
					EmpleadoTO[].class);
			if (arrRespuestaTO != null) {
				if (arrRespuestaTO[0].getTipoError() > 0) {
					Utilerias.mostrarMensajeError(this, arrRespuestaTO[0]);
				} else {
					if (modificar == true) {
						empleado.groupBoxDatosEmpleadoEmpleado2
								.setEnabled(false);
						empleado.groupBoxDireccionEmpleado2.setEnabled(false);
						empleado.groupBoxPropiedadesEmpleado2.setEnabled(false);
					}
					arrEmpleadoTO = null;
					arrEmpleadoTO = arrRespuestaTO.clone();
					limpiarEmpleado();
					if (operacion == false) {
						eventosGenerales();
						preparaVentana(null);
					} else
						preparaVentanaBC(null);
				}
			}
		}
		empleado.comboBoxValorEmpleado2.setCurrentIndex(-1);
	}

	public void botonBuscarJefe() {
		empleado.comboBoxValorEmpleado2.lineEdit().returnPressed.emit();
		if (empleado.comboBoxValorEmpleado2.currentIndex() > -1) {
			EmpleadoTO[] arrRespuestaTO = null;
			int idJefe = arrJefeTO[empleado.comboBoxValorEmpleado2
					.currentIndex()].getIdEmpleado();
			arrRespuestaTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
					"encontrarEmpleadosActivosPorJefe", idJefe,
					EmpleadoTO[].class);
			if (arrRespuestaTO != null) {
				if (arrRespuestaTO[0].getTipoError() > 0) {
					Utilerias.mostrarMensajeError(this, arrRespuestaTO[0]);
				} else {
					if (modificar == true) {
						empleado.groupBoxDatosEmpleadoEmpleado2
								.setEnabled(false);
						empleado.groupBoxDireccionEmpleado2.setEnabled(false);
						empleado.groupBoxPropiedadesEmpleado2.setEnabled(false);
					}
					arrEmpleadoTO = null;
					arrEmpleadoTO = arrRespuestaTO.clone();
					limpiarEmpleado();
					if (operacion == false) {
						eventosGenerales();
						preparaVentana(null);
					} else
						preparaVentanaBC(null);
				}
			}
		}
		empleado.comboBoxValorEmpleado2.setCurrentIndex(-1);
	}

	public void botonBuscarTodos() {
		arrEmpleadoTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
				"buscarEmpleadosActivos", EmpleadoTO[].class);
		if (modificar == true) {
			empleado.groupBoxDatosEmpleadoEmpleado2.setEnabled(false);
			empleado.groupBoxDireccionEmpleado2.setEnabled(false);
			empleado.groupBoxPropiedadesEmpleado2.setEnabled(false);
		}
		limpiarEmpleado();
		if (operacion == false) {
			eventosGenerales();
			preparaVentana(null);
		} else
			preparaVentanaBC(null);

	}

	public void botonLimpiar() {
		empleado.comboBoxBuscarEmpleado2.setCurrentIndex(-1);
	}

	public void botonCancelar() {
		empleado.dockWidgetEmpleado2.setHidden(true);
	}

	public void modificacionPaterno(String cadena) {
		short res = cambioTexto(cadena, 80);
		if (res == 0) {
			empleado.lineEditApellidoMaternoEmpleado2.setEnabled(true);
		} else if (res == 1) {
			empleado.lineEditApellidoMaternoEmpleado2.setEnabled(false);
			empleado.lineEditCurpEmpleado2.setText("*****************");
		} else if (res == 2) {
			empleado.lineEditApellidoPaternoEmpleado2.setText(cadena.substring(
					0, 79));
		}
		emitirEstados();
	}

	public void modificacionMaterno(String cadena) {
		short res = cambioTexto(cadena, 80);
		if (res == 0
				&& empleado.lineEditApellidoMaternoEmpleado2.isEnabled() == true) {
			empleado.lineEditNombresEmpleado2.setEnabled(true);
		} else if (res == 1
				|| empleado.lineEditApellidoMaternoEmpleado2.isEnabled() == false) {
			empleado.lineEditNombresEmpleado2.setEnabled(false);
			empleado.lineEditCurpEmpleado2.setText("*****************");
		} else if (res == 2) {
			empleado.lineEditApellidoMaternoEmpleado2.setText(cadena.substring(
					0, 79));
		}
		emitirEstados();
	}

	public void modificacionNombre(String cadena) {
		short res = cambioTexto(cadena, 80);
		if (res == 0 && empleado.lineEditNombresEmpleado2.isEnabled() == true) {
			empleado.dateEditNacimientoEmpleado2.setEnabled(true);
			empleado.comboBoxSexoEmpleado2.setEnabled(true);
		} else if (res == 1
				|| empleado.lineEditNombresEmpleado2.isEnabled() == false) {
			empleado.dateEditNacimientoEmpleado2.setEnabled(false);
			empleado.comboBoxSexoEmpleado2.setEnabled(false);
			empleado.lineEditCurpEmpleado2.setText("*****************");
			empleado.comboBoxSexoEmpleado2.setCurrentIndex(-1);
		} else if (res == 2) {
			empleado.lineEditNombresEmpleado2.setText(cadena.substring(0, 79));
		}
		emitirEstados();
	}

	public void modificacionNacimiento(QDate fecha) {
		empleado.lineEditCurpEmpleado2.setText("*****************");
		empleado.comboBoxSexoEmpleado2.setCurrentIndex(-1);
	}

	public void modificacionSexo(String cadena) {
		empleado.lineEditCurpEmpleado2.setText("*****************");
	}

	public void modificacionSexo(int indice) {
		if (indice > -1) {
			if (empleado.comboBoxSexoEmpleado2.isEnabled() == true
					&& empleado.lineEditNssEmpleado2.isEnabled() == false) {
				empleado.lineEditCurpEmpleado2.setEnabled(true);
				empleado.pushButtonCurp.setEnabled(true);

			} else if (empleado.comboBoxSexoEmpleado2.isEnabled() == false) {
				empleado.lineEditCurpEmpleado2.setEnabled(false);

			}
			emitirEstados();
		} else {
			empleado.lineEditCurpEmpleado2.setEnabled(false);
			empleado.pushButtonCurp.setEnabled(false);
		}
	}

	public void calculaCurp() {
		PersonaTO curpTO = new PersonaTO();
		curpTO.setNombre(empleado.lineEditNombresEmpleado2.text());
		curpTO.setApellidoPaterno(empleado.lineEditApellidoPaternoEmpleado2
				.text());
		curpTO.setApellidoMaterno(empleado.lineEditApellidoMaternoEmpleado2
				.text());
		if (empleado.comboBoxSexoEmpleado2.currentIndex() == 0)
			curpTO.setSexo(false);
		else
			curpTO.setSexo(true);
		curpTO.setFechaNacimiento(FechaHoraTO
				.getFechaUtil(empleado.dateEditNacimientoEmpleado2.text()));
		String resCurp = (String) ConexionConNegocios.invocaServicio(
				"calcularCurp", curpTO, String.class);
		if (resCurp != null)
			empleado.lineEditCurpEmpleado2.setText(resCurp);
	}

	public void modificacionCurp(String cadena) {

		if (cadena.replace("*", "").length() == 23
				&& empleado.lineEditCurpEmpleado2.isEnabled() == true) {
			empleado.lineEditTelefonoEmpleado2.setEnabled(true);
			empleado.lineEditMovilrEmpleado2.setEnabled(true);
			empleado.dateEditIngresoEmpleado2.setEnabled(true);
			empleado.lineEditNssEmpleado2.setEnabled(true);
		} else {
			empleado.lineEditTelefonoEmpleado2.setEnabled(false);
			empleado.lineEditMovilrEmpleado2.setEnabled(false);
			empleado.dateEditIngresoEmpleado2.setEnabled(false);
			empleado.lineEditNssEmpleado2.setEnabled(false);
		}
		emitirEstados();
	}

	public void modificacionNss(String cadena) {
		if (cadena.replace("#", "").length() == 11
				&& empleado.lineEditNssEmpleado2.isEnabled() == true) {
			empleado.comboBoxEstadoEmpleado2.setEnabled(true);
			if (empleado.comboBoxDelegacionEmpleado2.lineEdit().text().replace(
					" ", "").length() > 0)
				empleado.comboBoxDelegacionEmpleado2.setEnabled(true);
			else
				empleado.comboBoxDelegacionEmpleado2.setEnabled(false);
			if (empleado.comboBoxColoniaEmpleado2.lineEdit().text().replace(
					" ", "").length() > 0)
				empleado.comboBoxColoniaEmpleado2.setEnabled(true);
			else
				empleado.comboBoxColoniaEmpleado2.setEnabled(false);
			if (empleado.comboBoxCalleEmpleado2.lineEdit().text().replace(" ",
					"").length() > 0)
				empleado.comboBoxCalleEmpleado2.setEnabled(true);
			else
				empleado.comboBoxCalleEmpleado2.setEnabled(false);
			if (empleado.lineEditNumeroExteriorEmpleado2.text()
					.replace(" ", "").length() > 0)
				empleado.lineEditNumeroExteriorEmpleado2.setEnabled(true);
			else if(empleado.comboBoxCalleEmpleado2.isEnabled()==false)
				empleado.lineEditNumeroExteriorEmpleado2.setEnabled(false);

		} else {
			empleado.comboBoxEstadoEmpleado2.setEnabled(false);
			empleado.comboBoxCalleEmpleado2.setEnabled(false);
			empleado.comboBoxColoniaEmpleado2.setEnabled(false);
			empleado.comboBoxDelegacionEmpleado2.setEnabled(false);
			empleado.comboBoxJefeEmpleado2.setEnabled(false);
			empleado.comboBoxPuestoEmpleado2.setEnabled(false);
			empleado.pushButtonValor3Empleado2.setEnabled(false);
			empleado.comboBoxCalleEmpleado2.setEnabled(false);
			empleado.lineEditNumeroExteriorEmpleado2.setEnabled(false);
		}
		emitirEstados();
	}

	public void modificacionEstado(int indice) {
		if (indice > -1) {
			if (empleado.comboBoxEstadoEmpleado2.isEnabled() == true) {
				empleado.comboBoxDelegacionEmpleado2.setCurrentIndex(-1);
				empleado.comboBoxColoniaEmpleado2.setCurrentIndex(-1);
				empleado.comboBoxDelegacionEmpleado2.setEnabled(true);
				arrMunicipioTO = (MunicipioTO[]) ConexionConNegocios
						.invocaServicio("seleccionarMunicipiosPorEstado",
								arrEstadoTO[empleado.comboBoxEstadoEmpleado2
										.currentIndex()].getIdEstado(),
								MunicipioTO[].class);
				llenarComboMunicipio();
			} else {
				empleado.comboBoxDelegacionEmpleado2.setEnabled(false);
			}

		} else {
			empleado.comboBoxDelegacionEmpleado2.setEnabled(false);
		}

	}

	public void modificacionMunicipio(int indice) {
		if (indice > -1) {
			if (empleado.comboBoxDelegacionEmpleado2.isEnabled() == true) {
				empleado.comboBoxColoniaEmpleado2.setCurrentIndex(-1);
				empleado.comboBoxColoniaEmpleado2.setEnabled(true);
				arrColoniaTO = (ColoniaTO[]) ConexionConNegocios
						.invocaServicio(
								"buscarColoniasPorMunicipio",
								arrMunicipioTO[empleado.comboBoxDelegacionEmpleado2
										.currentIndex()].getIdMunicipio(),
								ColoniaTO[].class);
				llenarComboColonia();
			} else {
				empleado.comboBoxColoniaEmpleado2.setEnabled(false);
			}
		} else {
			empleado.comboBoxColoniaEmpleado2.setEnabled(false);
		}
	}

	public void modificacionColonia(int indice) {
		if (indice > -1) {
			if (empleado.comboBoxColoniaEmpleado2.isEnabled() == true) {
				empleado.comboBoxCalleEmpleado2.setCurrentIndex(-1);
				empleado.comboBoxCalleEmpleado2.setEnabled(true);
				coloniaCalleTO = (ColoniaCalleTO) ConexionConNegocios
						.invocaServicio("buscarCallesPorColonia",
								arrColoniaTO[empleado.comboBoxColoniaEmpleado2
										.currentIndex()].getIdColonia(),
								ColoniaCalleTO.class);
				arrCalleTO = null;
				if(coloniaCalleTO.getTipoError() == 0)
					arrCalleTO = coloniaCalleTO.getListCalleTO().clone();
				else
					empleado.comboBoxCalleEmpleado2.clear();
				llenarComboCalle();
				if (arrCalleTO != null)
					empleado.comboBoxCPEmpleado2.lineEdit().setText(
							arrColoniaTO[empleado.comboBoxColoniaEmpleado2
									.currentIndex()].getCodigoPostal());
			} else {
				empleado.comboBoxCalleEmpleado2.setEnabled(false);
			}
		} else {
			empleado.comboBoxCalleEmpleado2.setEnabled(false);
			empleado.comboBoxCalleEmpleado2.setCurrentIndex(-1);

		}
	}

	public void modificacionCalle(int indice) {
		if (indice > -1) {

			if (empleado.comboBoxCalleEmpleado2.isEnabled() == true) {
				empleado.lineEditNumeroExteriorEmpleado2.setEnabled(true);

			} else {
				empleado.lineEditNumeroExteriorEmpleado2.setEnabled(false);
			}
		} else {
			empleado.lineEditNumeroExteriorEmpleado2.setEnabled(false);
		}
	}

	public void modificacionExterior(String cadena) {
		int lon = cadena.replace(" ", "").length();
		if (lon <= 20
				&& empleado.lineEditNumeroExteriorEmpleado2.isEnabled() == true
				&& lon > 0) {
			empleado.lineEditNumeroInteriorEmpleado2.setEnabled(true);
			empleado.comboBoxPuestoEmpleado2.setEnabled(true);
		} else {
			empleado.lineEditNumeroInteriorEmpleado2.setEnabled(false);
			empleado.comboBoxPuestoEmpleado2.setEnabled(false);
		}
		emitirEstados();
	}

	public void modificacionPuesto(int indice) {
		if (indice > -1) {
			if (empleado.comboBoxPuestoEmpleado2.isEnabled() == true) {
				empleado.comboBoxJefeEmpleado2.setEnabled(true);

			} else {
				empleado.comboBoxJefeEmpleado2.setEnabled(false);
			}
		} else {
			empleado.comboBoxJefeEmpleado2.setEnabled(false);
		}
	}

	public void modificacionJefe(int indice) {
		if (indice > -1) {
			if (empleado.comboBoxJefeEmpleado2.isEnabled() == true) {
				empleado.pushButtonValor3Empleado2.setEnabled(true);

			} else {
				empleado.pushButtonValor3Empleado2.setEnabled(false);
			}
		} else {
			empleado.pushButtonValor3Empleado2.setEnabled(false);
		}
	}

	public void modificacionEstado(String cadena) {
		empleado.comboBoxEstadoEmpleado2.currentIndexChanged
				.emit(empleado.comboBoxEstadoEmpleado2.currentIndex());
	}

	public void modificacionMunicipio(String cadena) {
		empleado.comboBoxDelegacionEmpleado2.currentIndexChanged
				.emit(empleado.comboBoxDelegacionEmpleado2.currentIndex());
	}

	public void modificacionColonia(String cadena) {
		empleado.comboBoxColoniaEmpleado2.currentIndexChanged
				.emit(empleado.comboBoxColoniaEmpleado2.currentIndex());
	}

	public void modificacionCalle(String cadena) {
		empleado.comboBoxCalleEmpleado2.currentIndexChanged
				.emit(empleado.comboBoxCalleEmpleado2.currentIndex());
	}

	public void modificacionPuesto(String cadena) {
		empleado.comboBoxPuestoEmpleado2.currentIndexChanged
				.emit(empleado.comboBoxPuestoEmpleado2.currentIndex());
	}

	public void modificacionJefe(String cadena) {
		empleado.comboBoxJefeEmpleado2.currentIndexChanged
				.emit(empleado.comboBoxJefeEmpleado2.currentIndex());
	}

	public void emitirEstados() {
		empleado.lineEditApellidoPaternoEmpleado2.textChanged
				.emit(empleado.lineEditApellidoPaternoEmpleado2.text());
		empleado.lineEditApellidoMaternoEmpleado2.textChanged
				.emit(empleado.lineEditApellidoMaternoEmpleado2.text());
		empleado.lineEditNombresEmpleado2.textChanged
				.emit(empleado.lineEditNombresEmpleado2.text());
		empleado.comboBoxSexoEmpleado2.currentIndexChanged
				.emit(empleado.comboBoxSexoEmpleado2.currentIndex());
		empleado.lineEditCurpEmpleado2.textChanged
				.emit(empleado.lineEditCurpEmpleado2.text());
		empleado.lineEditNssEmpleado2.textChanged
				.emit(empleado.lineEditNssEmpleado2.text());
		empleado.lineEditNumeroExteriorEmpleado2.textChanged
				.emit(empleado.lineEditNumeroExteriorEmpleado2.text());
		empleado.comboBoxPuestoEmpleado2.currentIndexChanged
				.emit(empleado.comboBoxPuestoEmpleado2.currentIndex());
		empleado.comboBoxJefeEmpleado2.currentIndexChanged
				.emit(empleado.comboBoxJefeEmpleado2.currentIndex());
	}

	public void botonAgregar() {
		DireccionTO enviarDirTO = new DireccionTO();

		enviarDirTO.setColoniaCalleTO(new ColoniaCalleTO());
		enviarDirTO
				.getColoniaCalleTO()
				.setIdColoniaCalle(
						coloniaCalleTO.getListIdColiniaCalle()[empleado.comboBoxCalleEmpleado2
								.currentIndex()]);
		enviarDirTO.setNumero(empleado.lineEditNumeroExteriorEmpleado2.text());
		if (empleado.lineEditNumeroInteriorEmpleado2.text().replace(" ", "")
				.length() == 0)
			enviarDirTO.setInterior(null);
		else
			enviarDirTO.setInterior(empleado.lineEditNumeroInteriorEmpleado2
					.text());

		PersonaTO enviarPerTO = new PersonaTO();

		enviarPerTO.setNombre(empleado.lineEditNombresEmpleado2.text());
		enviarPerTO
				.setApellidoPaterno(empleado.lineEditApellidoPaternoEmpleado2
						.text());
		enviarPerTO
				.setApellidoMaterno(empleado.lineEditApellidoMaternoEmpleado2
						.text());
		enviarPerTO.setCurp(empleado.lineEditCurpEmpleado2.text().replace("-",
				""));

		if (empleado.comboBoxSexoEmpleado2.currentIndex() == 0)
			enviarPerTO.setSexo(false);
		else
			enviarPerTO.setSexo(true);

		enviarPerTO.setFechaNacimiento(FechaHoraTO
				.getFechaUtil(empleado.dateEditNacimientoEmpleado2.text()));

		enviarPerTO.setMovil(empleado.lineEditMovilrEmpleado2.text());
		enviarPerTO.setTelefono(empleado.lineEditTelefonoEmpleado2.text());
		enviarPerTO.setDireccionTO(enviarDirTO);

		EmpleadoTO enviarTO = new EmpleadoTO();

		enviarTO.setNss(empleado.lineEditNssEmpleado2.text());
		enviarTO.setFechaIngreso(FechaHoraTO
				.getFechaUtil(empleado.dateEditIngresoEmpleado2.text()));
		enviarTO.setPersonaTO(enviarPerTO);
		enviarTO.setPuestoTO(new PuestoTO());
		enviarTO.getPuestoTO().setIdPuesto(
				arrPuestoTO[empleado.comboBoxPuestoEmpleado2.currentIndex()]
						.getIdPuesto());
		enviarTO.setActivo(true);
		enviarTO.setDiasVacaciones((short) 0);

		EmpleadoTO[] arrEnviarTO = new EmpleadoTO[2];

		arrEnviarTO[0] = enviarTO;
		if (empleado.comboBoxJefeEmpleado2.currentIndex() == 0)
			arrEnviarTO[1] = enviarTO;
		else
			arrEnviarTO[1] = arrEmpleadoJefeTO[empleado.comboBoxJefeEmpleado2
					.currentIndex() - 1];

		EmpleadoTO respTO = (EmpleadoTO) ConexionConNegocios.invocaServicio(
				"agregarEmpleado", arrEnviarTO, EmpleadoTO.class);

		if (respTO != null) {
			if (respTO.getTipoError() > 0) {
				Utilerias.mostrarMensajeError(this, respTO);
			} else {
				bloqueaComponentes();
				respTO.setTipoError(TransferObject.INFO);
				Utilerias.mostrarMensajeError(this, respTO);
				limpiarEmpleado();
				eventosGenerales();

				arrEmpleadoTO = (EmpleadoTO[]) ConexionConNegocios
						.invocaServicio("buscarEmpleadosActivos",
								EmpleadoTO[].class);
				arrEmpleadoJefeTO = null;
				arrEmpleadoJefeTO = arrEmpleadoTO.clone();
				empleado.pushButtonValor3Empleado2.setEnabled(false);

				preparaVentana(null);

			}
		} else {

		}
	}
	
	public void botonModificar() {
		DireccionTO enviarDirTO = new DireccionTO();

		enviarDirTO.setColoniaCalleTO(new ColoniaCalleTO());
		enviarDirTO
				.getColoniaCalleTO()
				.setIdColoniaCalle(
						coloniaCalleTO.getListIdColiniaCalle()[empleado.comboBoxCalleEmpleado2
								.currentIndex()]);
		enviarDirTO.setNumero(empleado.lineEditNumeroExteriorEmpleado2.text());
		if (empleado.lineEditNumeroInteriorEmpleado2.text().replace(" ", "")
				.length() == 0)
			enviarDirTO.setInterior(null);
		else
			enviarDirTO.setInterior(empleado.lineEditNumeroInteriorEmpleado2
					.text());

		PersonaTO enviarPerTO = new PersonaTO();

		enviarPerTO.setNombre(empleado.lineEditNombresEmpleado2.text());
		enviarPerTO
				.setApellidoPaterno(empleado.lineEditApellidoPaternoEmpleado2
						.text());
		enviarPerTO
				.setApellidoMaterno(empleado.lineEditApellidoMaternoEmpleado2
						.text());
		enviarPerTO.setCurp(empleado.lineEditCurpEmpleado2.text().replace("-",
				""));

		if (empleado.comboBoxSexoEmpleado2.currentIndex() == 0)
			enviarPerTO.setSexo(false);
		else
			enviarPerTO.setSexo(true);

		enviarPerTO.setFechaNacimiento(FechaHoraTO
				.getFechaUtil(empleado.dateEditNacimientoEmpleado2.text()));

		enviarPerTO.setMovil(empleado.lineEditMovilrEmpleado2.text());
		enviarPerTO.setTelefono(empleado.lineEditTelefonoEmpleado2.text());
		enviarPerTO.setDireccionTO(enviarDirTO);

		EmpleadoTO enviarTO = new EmpleadoTO();

		enviarTO.setNss(empleado.lineEditNssEmpleado2.text());
		enviarTO.setFechaIngreso(FechaHoraTO
				.getFechaUtil(empleado.dateEditIngresoEmpleado2.text()));
		enviarTO.setPersonaTO(enviarPerTO);
		enviarTO.setPuestoTO(new PuestoTO());
		enviarTO.getPuestoTO().setIdPuesto(
				arrPuestoTO[empleado.comboBoxPuestoEmpleado2.currentIndex()]
						.getIdPuesto());
		enviarTO.setActivo(true);
		enviarTO.setDiasVacaciones((short) 0);

		EmpleadoTO[] arrEnviarTO = new EmpleadoTO[4];

		arrEnviarTO[0] = enviarTO;
		if (empleado.comboBoxJefeEmpleado2.currentIndex() == 0)
			arrEnviarTO[1] = enviarTO;
		else
			arrEnviarTO[1] = arrEmpleadoJefeTO[empleado.comboBoxJefeEmpleado2
					.currentIndex() - 1];
		arrEnviarTO[2] = empleado2TO;
		arrEnviarTO[3] = jefe2TO;

		EmpleadoTO respTO = (EmpleadoTO) ConexionConNegocios.invocaServicio(
				"modificarEmpleado", arrEnviarTO, EmpleadoTO.class);

		if (respTO != null) {
			if (respTO.getTipoError() > 0) {
				Utilerias.mostrarMensajeError(this, respTO);
			} else {
				bloqueaComponentes();
				respTO.setTipoError(TransferObject.INFO);
				Utilerias.mostrarMensajeError(this, respTO);
				limpiarEmpleado();
				eventosGenerales();

				arrEmpleadoTO = (EmpleadoTO[]) ConexionConNegocios
						.invocaServicio("buscarEmpleadosActivos",
								EmpleadoTO[].class);
				arrEmpleadoJefeTO = null;
				arrEmpleadoJefeTO = arrEmpleadoTO.clone();
				empleado.pushButtonValor3Empleado2.setEnabled(false);

				preparaVentana(null);

			}
		} else {

		}
	}

	public void botonBaja() {

		int eleccion = 0;

		EmpleadoTO respTO = (EmpleadoTO) ConexionConNegocios.invocaServicio(
				"bajaEmpleado", empleado2TO, EmpleadoTO.class);

		if (respTO.getTipoError() == TransferObject.CONFIRMACION) {

			eleccion = Utilerias.mostrarMensajeError(this, respTO);

			empleado2TO.setTipoError(TransferObject.CONFIRMACION);

			if (eleccion == 16384) {

				respTO = (EmpleadoTO) ConexionConNegocios.invocaServicio(
						"bajaEmpleado", empleado2TO, EmpleadoTO.class);

				if (respTO.getTipoError() > 0) {

					Utilerias.mostrarMensajeError(this, respTO);

				} else {

					respTO.setTipoError(TransferObject.INFO);
					Utilerias.mostrarMensajeError(this, respTO);

					limpiarEmpleado();
					arrEmpleadoTO = (EmpleadoTO[]) ConexionConNegocios
							.invocaServicio("buscarEmpleadosActivos",
									EmpleadoTO[].class);

					arrEmpleadoJefeTO = arrEmpleadoTO.clone();
					empleado.pushButtonValor3Empleado2.setEnabled(false);
					preparaVentanaBC(null);
				}
			} else {
				empleado2TO.setTipoError(0);
			}
		} else if (respTO.getTipoError() > 0) {

			Utilerias.mostrarMensajeError(this, respTO);

		} else {

			respTO.setTipoError(TransferObject.INFO);
			Utilerias.mostrarMensajeError(this, respTO);
			bloqueaComponentes();
			limpiarEmpleado();

			arrEmpleadoTO = (EmpleadoTO[]) ConexionConNegocios.invocaServicio(
					"buscarEmpleadosActivos", EmpleadoTO[].class);
			arrEmpleadoJefeTO = null;
			arrEmpleadoJefeTO = arrEmpleadoTO.clone();
			empleado.pushButtonValor3Empleado2.setEnabled(false);
			preparaVentanaBC(null);
		}

	}

}
